home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Science / MAL ©P.f.Howden 1⁄1⁄89 / QUIKSORT < prev    next >
Text File  |  1987-08-19  |  2KB  |  39 lines

  1. 1 CLS:CLEAR:PRINT"QUIKSORT":RESTORE:INPUT "NUMBER of ITEMS N, or Arbitrary upper limit (1000?)=";N
  2. 2 PRINT"ENTER ITEMS AS DATA STATEMENTS FROM LINE 500 AS :":PRINT"  WORD/NUMBER OR NUMBER/WORD  eg:":PRINT"  500 DATA ''KING/321'',''123/KONG'',..........."
  3. 3 REM EXPERIMENT PUTTING ALL WORDS,NUMBERS EQUAL LENGTH,SAY 15 LETTERS(UNUSED SPACES BLANK,ZERO).
  4. 4 PRINT"TO FIND IF A NEW ITEM IS IN THE LIST,":PRINT"ALSO WRITE IT INTO THE DATA STATEMENT LIST & WATCH RESULTS."
  5. 5 DIM B(N,2):INPUT "REVIEW DATA (1/0)";Q:DIM A$(N),M$(0)
  6. 6 FOR I=1 TO N:READ A$(I):IF A$(I)="ZZZZZZZZZZ" THEN I=N:G=1:GOTO 9
  7. 8 IF Q=1 THEN PRINT"ITEM";I;"=";A$(I)
  8. 9 K=K+1:NEXT I:IF G<>1 THEN PRINT"NOT all ITEMS may be included:":PRINT"   RUN again with increased N if desired to include all ITEMS."
  9. 12 INPUT "PRESS RETURN for SORTED LIST";C$:CLS:J1=K:I1=1:IF G=1 THEN N=K-1:GOTO 20
  10. 15 N=K
  11. 20 I=I1:J=J1:H=-1
  12. 25 IF A$(I)<A$(J) THEN 40
  13. 35 M$(0)=A$(I):A$(I)=A$(J):A$(J)=M$(0):H=-H
  14. 40 IF H=1 THEN 60
  15. 50 J=J-1:GOTO 70
  16. 60 I=I+1
  17. 70 IF I<J THEN 25
  18. 80 IF I+1>J1 THEN 120
  19. 90 P=P+1:IF P<50 THEN 110
  20. 100 PRINT"STACK OVERFLOW:":INPUT"Press RETURN to END";C$:GOTO 1
  21. 110 B(P,1)=I+1:B(P,2)=J1
  22. 120 J1=I-1:IF I1<J1 THEN 20
  23. 130 IF P=0 THEN 145
  24. 140 I1=B(P,1):J1=B(P,2):P=P-1:GOTO 20
  25. 145 BEEP:PRINT"SORTED LIST:":FOR J=1 TO N:PRINT"ITEM";J;"=";A$(J):IF A$(J)=A$(J-1) THEN PRINT"------------------ABOVE 2 ITEMS IDENTICAL"
  26. 155 NEXT J:INPUT"Press RETURN to END";C$:GOTO 1
  27. 500 DATA "TWIT  /9876"
  28. 501 DATA "HAWKE LOVES LOLLY","FISKE/.013"
  29. 502 DATA "GOONS/2.1E-20","GODZILA/.085E+27"
  30. 503 DATA "TWIT D/201.1","KING KONG/20-AB","FISKE/.013"
  31. 504 DATA "HAWKE LOVES LOLITA/*+-SQR"
  32. 505 DATA "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK/68"
  33. 599 REM ---------------------------------------------
  34. 600 DATA "12345.68/JACK","12345.67807/JILL"
  35. 601 DATA "12345.680011/Hi","12345.68/JILL"
  36. 602 DATA "12345678.925E+30/FILE/323","12345678.915E+31/24"
  37. 10000 DATA "ZZZZZZZZZZ":' This line must remain at end of DATA lists.
  38.                   MACINTOSH LISTING
  39.